home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / v cisle / hexer / mpth_17.exe / {app} / scripts / customprops.mps < prev    next >
Text File  |  2005-10-24  |  4KB  |  162 lines

  1. include 'def.mps'
  2. include 'gui.mps'
  3. include '*.lng'
  4. option UNDO, 0
  5. option globalvars, 1
  6. call DEC_TEXT_CONV
  7.  
  8. = display/modify custom file properties
  9.  
  10. = ensure a current file is available
  11. if currentfile==''
  12.   if PARAM_COUNT > 0
  13.     !cmd.fileopen PARAMS(0)
  14.   else
  15.     !cmd.fileopen
  16.   endif
  17.   if currentfile==''
  18.     end
  19.   endif
  20. endif
  21.  
  22. @@dialog
  23.  
  24. call create_propdlg
  25. call fillprops
  26.  
  27. GUIShowModal('dlgProperties')
  28. if (GuiExists('dlgItem'))
  29.   GuiDestroy('dlgItem')
  30. endif
  31. if (GuiExists('dlgProperties'))
  32.   GuiDestroy('dlgProperties')
  33. endif
  34. end
  35.  
  36. @@fillprops
  37. var fin file
  38. var cp text
  39. fin=fileopen('::current', 'r')
  40. cp = filegetprop(fin, '!'):= return a list of all custom properties
  41. var i dword
  42. guisetprop('dlgProperties.lbprops', 'items', '')
  43. guisetprop('dlgProperties.btnModify', 'enabled', 0)
  44. guisetprop('dlgProperties.btnRemove', 'enabled', 0)
  45. i = textlinecount(cp)
  46. if (i)
  47.   var j dword n dword
  48.   var s text
  49.   j = 0
  50.   while j < i
  51.     s = textline(cp,j)
  52.     n = textpos('=',s)
  53.     if (n)
  54.       textcut(@s, n+1,1)
  55.     endif  
  56.     guiadditem('dlgProperties.lbprops',s)
  57.     inc j, 1
  58.   endwhile
  59. endif
  60.  
  61.  
  62. fileclose fin
  63.  
  64. return
  65.  
  66. @@lbclick
  67. if (guigetprop('dlgProperties.lbprops','itemindex') > -1)
  68.   guisetprop('dlgProperties.btnModify', 'enabled', 1)
  69.   guisetprop('dlgProperties.btnRemove', 'enabled', 1)
  70. else
  71.   guisetprop('dlgProperties.btnModify', 'enabled', 0)
  72.   guisetprop('dlgProperties.btnRemove', 'enabled', 0)
  73. endif
  74. return
  75.  
  76. @@btnRemove_Click
  77. var b_c1 qword
  78. b_c1 = guigetprop('dlgProperties.lbprops','itemindex')
  79. if b_c1 >= 0
  80.   var l text s1 text j1 dword i1 dword
  81.   i1 = textlinecount(cp)
  82.   j1 = 0
  83.   l = ''
  84.   while j1 < i1
  85.     s1 = textline(cp,j1)
  86.     if (j1 != b_c1)
  87.       l = l+s1+"\n\r"
  88.     endif  
  89.     inc j1, 1
  90.   endwhile
  91.   
  92.   fin=fileopen('::current', 'w')
  93.   filesetprop fin, '!', l:= set all custom properties
  94.   fileclose fin
  95.   call fillprops
  96.   goto lbclick
  97. endif
  98. return
  99.  
  100. @@dlgItem_EditChange
  101. var sdiec text sdiec1 text sdiec2 byte
  102. sdiec2 = 1
  103. sdiec = GuiGetProp('dlgItem.edName', 'text')
  104. sdiec1 = GuiGetProp('dlgItem.edValue', 'text')
  105. if (sdiec == '')
  106.   sdiec2 = 0
  107. else
  108.   if (sdiec1 == '')
  109.     sdiec2 = 0
  110.   else
  111.     if (GuiGetProp('dlgItem.cbNumber', 'Checked'))
  112.       if (not isnumber(sdiec1))
  113.         sdiec2 = 0
  114.       endif
  115.     endif
  116.   endif
  117. endif
  118. guisetprop('dlgItem.btnOK','Enabled',sdiec2)
  119. return
  120.  
  121. @@btnAdd_Click
  122. call create_itemdlg
  123. if (GUIShowModal('dlgItem') == IDOK)
  124.   var bac1 text bac2 text
  125.   bac1 = GuiGetProp('dlgItem.edName', 'text') 
  126.   bac2 = GuiGetProp('dlgItem.edValue', 'text')
  127.   fin=fileopen('::current', 'w')
  128.   if (GuiGetProp('dlgItem.cbNumber', 'Checked'))
  129.     filesetprop fin, ('!'+bac1), qword(bac2)
  130.   else
  131.     filesetprop fin, ('!'+bac1), bac2
  132.   endif
  133.   fileclose fin
  134.   call fillprops
  135. endif
  136. return
  137.  
  138. @@btnModify_Click
  139. call create_itemdlg
  140. s1 = textline(cp, GuiGetProp('dlgProperties.lbprops', 'ItemIndex'))
  141. guisetprop('dlgItem.edName', 'Text', textcut(@s1, 1, textpos('=',s1)-1))
  142. guisetprop('dlgItem.cbNumber', 'Checked', (textcut(@s1, 1, 2) == '=I'))
  143. guisetprop('dlgItem.edValue', 'Text', s1)
  144. guisetprop('dlgItem', 'Caption', __STR_1)
  145. guisetprop('dlgItem.edName', 'ReadOnly', 1)
  146. guisetprop('dlgItem.edName', 'ParentColor', 1)
  147. guisetprop('dlgItem.cbNumber', 'Enabled', 0)
  148. guisetprop('dlgItem.btnOK', 'Enabled', 0)
  149.  
  150. if (GUIShowModal('dlgItem') == IDOK)
  151.   bac1 = GuiGetProp('dlgItem.edName', 'text') 
  152.   bac2 = GuiGetProp('dlgItem.edValue', 'text')
  153.   fin=fileopen('::current', 'w')
  154.   if (GuiGetProp('dlgItem.cbNumber', 'Checked'))
  155.     filesetprop fin, ('!'+bac1), qword(bac2)
  156.   else
  157.     filesetprop fin, ('!'+bac1), bac2
  158.   endif
  159.   fileclose fin
  160.   call fillprops
  161. endif
  162. return